package com.cms.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.cms.entity.Article;

/**
 * 文章Dao接口
 * @author user
 *
 */
public interface ArticleDao {

	/**
	 * 获取最新的8条文章
	 * @return
	 */
	public List<Article> getNewest();
	
	
	/**
	 * 获取最新8条推荐的文章
	 * @return
	 */
	public List<Article> getRecommend();
	
	/**
	 * 获取最新5条幻灯文章
	 * @return
	 */
	public List<Article> getSlide();
	
	
	/**
	 * 根据文章类别来查找最新的8条数据
	 * @param typeId
	 * @return
	 */
	public List<Article> getIndex(Integer typeId);


	/**
	 * 通过id查询文章
	 * @param id
	 * @return
	 */
	public Article findById(Integer id);
	
	
	/**
	 * 获取上一个文章
	 * @param id
	 * @return
	 */
	public Article getLastArticle(@Param("id")Integer id,@Param("typeid")Integer typeid);
	
	/**
	 * 获取下一个文章
	 * @param id
	 * @return
	 */
	public Article getNextArticle(@Param("id")Integer id,@Param("typeid")Integer typeid);
	
	/**
	 * 更新文章【点击次数是文章的一个属性，为后续的更新考虑，统一在文章更新中完成】
	 * @param article
	 * @return
	 */
	public Integer update(Article article);	

	/**
	 * 根据条件（目前条件栏目id，以后可能会变成其他条件，所以参数采用通用的map）查询文章
	 * @param map
	 * @return
	 */
	public List<Article> list(Map<String,Object> map);
	
	/**
	 * 根据条件（目前条件栏目id，以后可能会变成其他条件，所以参数采用通用的map）获取文章总记录数
	 * @param map
	 * @return
	 */
	public Long getTotal(Map<String,Object> map);
	
	
	/**
	 * 添加文章
	 * @param article
	 * @return
	 */
	public Integer add(Article article);
	
	
	/**
	 * 删除文章信息
	 * @param id
	 * @return
	 */
	public Integer delete(Integer id);


	public int getNumByTypeId(int id);

	
}





